using System.Threading.Tasks;

namespace DesktopApp.ViewModels.Services
{
    public interface ILogFileService
    {
        /// <summary>
        /// Opens a file picker to allow the user to select a log file, then reads and returns its content.
        /// </summary>
        /// <returns>The content of the selected log file, or null if the operation was cancelled or failed.</returns>
        Task<string?> OpenLogAsync();

        /// <summary>
        /// Reads text content from the system clipboard.
        /// </summary>
        /// <returns>The text content from the clipboard, or null if the clipboard is empty or inaccessible.</returns>
        Task<string?> PasteLogAsync();

        /// <summary>
        /// Opens a file picker to allow the user to specify a location, then saves the provided result text to that file.
        /// </summary>
        /// <param name="resultText">The text content to save.</param>
        /// <returns>True if the file was saved successfully, false otherwise.</returns>
        Task<bool> SaveResultAsync(string resultText);

        /// <summary>
        /// Copies the provided text to the system clipboard.
        /// </summary>
        /// <param name="textToCopy">The text to copy.</param>
        /// <returns>True if the text was copied successfully, false otherwise.</returns>
        Task<bool> CopyTextToClipboardAsync(string textToCopy);
    }
} 